<?php
class Image
{


	//生成二维码图片
	public function makeCodeImg($url, $product_sn)
	{
		$url = $url . '/' . $product_sn . '?code_sn=' . $product_sn . '&code_type=product';
		$path = 'upload/product_qrcode';
		if (!is_dir($path)) {
			mkdir($path, 0777, true);
		}
		include_once 'phpqrcode.php';
		$value = $url;                  //二维码内容
		$errorCorrectionLevel = 'L';    //容错级别
		$matrixPointSize = 6;           //生成图片大小

		$filename = $path . '/' . $product_sn . '.jpg';
		QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);

	}

	//生成二维码
	public function makeMergerImg($sn_product){
		$this->makeCodeImg('www.baidu.com',$sn_product);//域名
		// unlink('upload/product_qr_code/'.$sn_product.'.jpg');
	}

	//生成压缩文件
	// 生成压缩zip文件 $file_name 最终生成的文件名,包含路径   $file_list,用来生成file_name的文件数组
	public function makeZip($file_name, $file_list)
	{
		if (file_exists($file_name)) {
			unlink($file_name);
		}
		//重新生成文件
		$zip = new ZipArchive();
		if ($zip->open($file_name, ZIPARCHIVE::CREATE) !== TRUE) {
			exit('无法打开文件，或者文件创建失败');
		}
		foreach ($file_list as $val) {
			if (file_exists($val)) {
				$zip->addFile($val);
			}
		}
		$zip->close();//关闭
		if (!file_exists($file_name)) {
			exit('无法找到文件'); //即使创建，仍有可能失败
		}
	}

	// 删除生成的图片文件夹及文件及文件夹下所有图片文件
	public function delfiles($path)
	{
		//先删除目录下的文件：
		$dh=opendir($path);
		while ($file=readdir($dh)) {
			if($file!="." && $file!="..") {
				$fullpath=$path."/".$file;
				if(!is_dir($fullpath)) {
					unlink($fullpath);
				} else {
					deldir($fullpath);
				}
			}
		}
		closedir($dh);
		rmdir($path);
	}

	//下载
	public function download($file){
		if ( file_exists ( $file )) {
			header ( 'Content-Description: File Transfer' );
			header ( 'Content-Type: application/octet-stream' );
			header ( 'Content-Disposition: attachment; filename=' . basename ( $file ));
			header ( 'Content-Transfer-Encoding: binary' );
			header ( 'Expires: 0' );
			header ( 'Cache-Control: must-revalidate' );
			header ( 'Pragma: public' );
			header ( 'Content-Length: ' . filesize ( $file ));
			ob_clean ();
			flush ();
			readfile ( $file );
			exit;
		}
	}

}